#ifndef __BSW_FTM_H__
#define __BSW_FTM_H__



typedef struct 
{ /*系统时钟112M 预分频128  */
	FTM_Type*  			   		ftmBase;		 	/* FTM基地址指针          			eg：FTM0                        */
	ftm_clock_source_t  		Clock_Source;       /* FTM外围时钟选择        			eg:FTM_CLOCK_SOURCE_SYSTEMCLK   */
	uint32_t                  	u32_clockSource;    /* 配置外围时钟源、分压器和时钟茫号：	eg:6                 */
	ftm_clock_ps_t				Clk_Ps;             /* FTM外围时钟预分频      			eg:FTM_CLOCK_DIVID_BY_128        */
	uint16_t 					u16_Per_value;	    /* 时钟模式的值           				eg:999                          */
	clock_names_t 				clockName;          /* 外围时钟的名字         				eg:FTM0_CLK                     */
	bool                      	b_WriteProtection;  /* 启用FTM写保护          			eg:false                        */
	bool                      	b_TimerOverflow;    /* state  *-true *-false  	eg:false                        */
	bool                      	b_Cpwms;            /* PWM选择中心对齐模式    			eg:false                        */
}Bsw_FTM_Cfg; 

typedef struct 
{
	FTM_Type*  			   		ftmBase;		 	/* FTM基地址指针                			eg:FTM0    */
	uint32_t					u32_ChNum;          /* CH通道号                     			eg:0       */
	bool						b_DualChnSync;      /* 启用通道对PWM计数器同步状态  		eg:false   */
	bool                      	b_ChnPolarity;      /* 极性设置                    			 	eg:false   */
	uint8_t                   	u8_ChnEdgelevel;    /* level ELSnB             	eg:2      */
	uint8_t                   	u8_ChnMSnBA;        /* 设置MSnB的有效值             			eg:2      */
	uint16_t                  	u16_ChnCountVal;    /* 设置计数器的值               			eg:119    */
}Bsw_Ftm_Ch_Cfg;

/********************************************************
**函数名：	BSW_FTM_INIT_PWM
**功能：		初始化FTM-PWM
**输入参数Ftm_Cfg
**返回值：	无
**注意：		
********************************************************/

void BSW_FTM_INIT_PWM(Bsw_FTM_Cfg Ftm_Cfg);

/********************************************************
**函数名：	BSW_FTM_CH_INIT
**功能：		初始化FTM-CH通道
**输入参数	FtmCh_Cfg 
**返回值：	无
**注意：		
*********************************************************/

void BSW_FTM_CH_INIT(Bsw_Ftm_Ch_Cfg FtmCh_Cfg);

/********************************************************
**函数名：	BSW_FTM_Update_PWM
**功能：		更新占空比
**输入参数	Ftm_Cfg
**返回值：	无
**注意：		
*********************************************************/
void BSW_FTM_Update_PWM(Bsw_Ftm_Ch_Cfg FtmCh_Cfg,u16 u16_Duty_Val);

#endif
